/**
* v-hasRole 角色权限处理
* Copyright (c) 2019 ruoyi
*/

import useUserStore from '@/store/modules/user'

export default {
    mounted(el, binding, vnode) {
        const { value } = binding;
        const allFeature = "*:*:*"; // 超级管理员标识
        const userFeatures = useUserStore().features || []; // 当前用户的功能标识集合
        // 验证 value 是否存在且为字符串
        if (value && typeof value === "string") {
            const hasFeature = userFeatures.includes(allFeature) || userFeatures.includes(value);

            if (!hasFeature) {
                // 如果没有权限，移除 DOM 元素
                el.parentNode && el.parentNode.removeChild(el);
            }
        } else {
            throw new Error(`请设置一个有效的字符串作为功能权限标识`);
        }
    }
}
